from typing import Protocol

from poker_bot.core.models.dto import PaymentDetailsDTO
from poker_bot.core.models.enums.currency import Currency


class PaymentMethodReader(Protocol):
    async def get_payment_method_by_id(
        self, payment_method_id: int
    ) -> PaymentDetailsDTO:
        raise NotImplementedError

    async def get_payment_method_by_currency(
        self, currency: Currency
    ) -> PaymentDetailsDTO:
        raise NotImplementedError

    async def get_payment_methods(self) -> list[PaymentDetailsDTO]:
        raise NotImplementedError
